package com.example.order.interceptor;

import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.stereotype.Component;

import java.util.UUID;

/**
 * Feign拦截器（RequestInterceptor）拦的是Feign发出的请求
 * SpringMVC中的HandlerInterceptor拦的是接收的请求
 * 在Feign发送HTTP请求之前，自动拦截并对Request请求做增强处理（比如加Header、加Token、打印日志、加签名等）。
 */
@Component
public class XTokenRequestInterceptor implements RequestInterceptor {

    /**
     * RequestInterceptor 请求拦截器
     * requestTemplate 请求模板
     */
    @Override
    public void apply(RequestTemplate requestTemplate) {
        System.out.println("XTokenRequestInterceptor start");
        requestTemplate.header("X-Token", UUID.randomUUID().toString());
    }

}
